// 引入axios
import axios from "axios"

import store from "@/store"
// 引入进度条
import nProgress from "nprogress"
import "nprogress/nprogress.css"


// console.log(process.env);

// 创建axios实例对象
const request = axios.create({
    baseURL: process.env.VUE_APP_API + "/api",
    timeout: 5000,
})

//创建请求拦截器
request.interceptors.request.use((config) => {
    // 发送请求后进度条开始
    nProgress.start()

    // 给请求头添加一个临时身份信息
    config.headers.userTempId = store.state.user.userTempId

    return config
})

//创建相应拦截器
request.interceptors.response.use((response) => {
    // 收到响应后进度条结束
    nProgress.done()
    // 从请求的数据中解构code和message    
    const {
        code,
        message
    } = response.data
    // 判断如果code的值为200，则是我们想要请求的数据，则返回过滤后的数据
    if (code === 200) {
        return response.data.data
    }

    //如果code的值不为200，则返回一个失败的promise，值为相应信息
    return Promise.reject({
        message: message
    })

}, (error) => {
    // 收到响应后进度条结束
    nProgress.done()
    // 如果响应失败，则返回一个失败的Promise，值为错误信息
    return Promise.reject(error)
})

//暴露request
export default request